맨위로가기

VESA 바이오스 확장

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

VESA 바이오스 확장(VBE)은 VESA(Video Electronics Standards Association)에서 개발한 표준으로, VGA 바이오스를 확장하여 고해상도 및 고색상의 그래픽 모드를 지원한다. VBE는 초기 버전(1.0, 1.1, 1.2)을 거쳐 2.0, 3.0, VBE/AF 등의 버전으로 발전했다. VBE 2.0은 선형 프레임 버퍼 접근, 보호 모드 뱅킹, 슈퍼 VGA 페이지 플리핑, 하이 컬러 및 트루 컬러 모드 등을 지원하며, VBE 3.0은 트리플 버퍼링, 재생률 제어, 스테레오 기능 등을 추가했다. VBE/AF는 하드웨어 가속 기능을 위한 인터페이스를 제공한다. 보충 규격으로 전원 관리 확장(PM), 평판형 패널 인터페이스 확장(FP), 오디오 인터페이스 확장(AI), OEM 확장, 디스플레이 데이터 채널(DDC), 직렬 제어 인터페이스(SCI) 등이 있다. VBE는 다양한 모드 번호를 정의하며, 운영체제에서 VBE 모드를 선택하기 위한 방법이 존재한다. 가상 머신 환경에서도 VBE 모드를 지원한다.

더 읽어볼만한 페이지

  • VESA - VESA 로컬 버스
    VESA 로컬 버스는 1990년대 초 ISA 버스의 대역폭 한계를 극복하기 위해 개발된 로열티 없는 로컬 버스 표준으로, 486 프로세서의 메모리 버스에 직접 연결되어 고속 데이터 전송을 가능하게 했으나, 여러 한계로 인해 PCI 버스로 대체되기 전까지 486 시스템에서 고성능 장치를 저렴하게 사용하도록 널리 사용되었다.
  • VESA - 미니 디스플레이포트
    미니 디스플레이포트는 DisplayPort의 소형 버전으로, 높은 해상도를 지원하며 어댑터를 통해 다양한 디스플레이 장치와 연결 가능하지만, DRM 콘텐츠 재생 제한, 어댑터 호환성, 초기 모델의 오디오 출력 미지원 등의 문제점을 가지고 썬더볼트 인터페이스로 발전했다.
  • 바이오스 - 아메리칸 메가트렌즈
    아메리칸 메가트렌즈(AMI)는 1985년에 설립된 회사로, BIOS 펌웨어, 서버용 마더보드, 스토리지 컨트롤러 등을 공급하며, 현재는 AMIBIOS, Aptio, AMIDiag 등 다양한 제품을 제공한다.
  • 바이오스 - 부트 섹터
    부트 섹터는 시스템 부팅 코드를 담은 저장 매체의 특정 영역으로, 볼륨 부트 레코드(VBR)와 마스터 부트 레코드(MBR)로 나뉘며, BIOS는 이를 실행하고 UEFI는 부트로더를 직접 로드하지만 바이러스 공격에 취약하다.
VESA 바이오스 확장

2. 표준

VESA 바이오스 확장(VBE)은 여러 버전으로 발전해 왔으며, 각 버전은 그래픽 성능 향상을 위한 새로운 기능과 개선 사항을 추가했다.

2. 1. 초기 VBE (1.0, 1.1, 1.2)

VESA에서 1989년에 VBE 1.0(VS891001)[3], 1990년에 VBE 1.1(VS900602), 1991년에 VBE 1.2(VS911022)[4]를 정의하였다. 이 초기 VBE 버전들은 리얼 모드에서 작동한다.

VBE는 INT 10H를 통해 호출되는 몇 가지 새로운 함수들을 정의한다. 함수 번호는 AX=4F00 (AH=4F, AL=00)으로 시작하며, 이는 'Function 00h'에 해당한다. VBE 1.0에서는 00h부터 05h까지, VBE 1.1에서는 06h와 07h, VBE 1.2에서는 08h가 정의되었다.

2. 2. VBE 2.0 (1994년 11월)

이 표준은 VESA 바이오스 확장 기능의 주요 기능을 제공한다. 이를 통해 응용 프로그램은 그래픽 카드의 기능을 파악하고 발견된 디스플레이 모드를 설정할 수 있다. VBE 2.0은 이전 VBE 1.2 표준보다 선형 프레임 버퍼 접근 및 보호 모드 뱅킹을 포함하여 몇 가지 새로운 기능을 추가했다.[5] VBE 코어 2.0의 기능은 다음과 같다.[5]

  • 선형 프레임 버퍼 접근: 보호 모드에서 비효율적인 작은 덩어리가 아닌 하나의 큰 메모리 영역으로 직접 프레임 버퍼 접근을 가능하게 한다.
  • 보호 모드 뱅킹: "thunking"을 실제 모드로 내리지 않고 보호 모드에서 프레임 버퍼에 접근할 수 있도록 한다. 이는 새로운 ''Function 0Ah''를 사용하여 구현된다.
  • 슈퍼 VGA 페이지 플리핑: 컴퓨터 게임 및 기타 고성능 그래픽 프로그램에서 부드러운 애니메이션을 제공하기 위해 더 높은 성능의 애니메이션을 가능하게 한다.
  • 슈퍼 VGA 가상 화면: 소프트웨어가 실제 표시 해상도보다 큰 가상 디스플레이 해상도를 설정하고 더 큰 이미지를 부드럽게 스크롤하거나 패닝할 수 있도록 한다.
  • 하이 컬러 및 트루 컬러 모드: 320×200부터 1600×1200까지의 해상도를 위한 산업 표준 16비트 및 24비트 그래픽 모드.

2. 3. VBE 3.0 (1998년 9월)

VBE 2.0 표준의 상위 집합이다. 이 표준은 재생률 제어, 입체 안경 기능, 향상된 다중 버퍼링 및 기타 기능을 VBE 2.0 표준에 추가한다.

  • '''트리플 버퍼링''': 고속 애플리케이션이 그래픽 컨트롤러를 기다릴 필요 없이 화면 깜박임을 줄이면서 다중 버퍼링을 수행할 수 있다.
  • '''GTF 타이밍을 사용한 재생률 제어''': 모든 VBE 3.0 그래픽 컨트롤러에서 표준 방식으로 재생률을 변경할 수 있도록 애플리케이션 및 운영 체제 유틸리티를 지원한다. 스테레오 애플리케이션에서는 스테레오 활성화 시 사용자의 실제 재생률이 절반으로 줄어들기 때문에 중요하다.
  • '''스테레오 페이지 플리핑''': 스테레오 안경을 사용하여 애플리케이션을 볼 때 각 눈에 대해 별도의 이미지를 생성해야 하므로 평소보다 두 배 더 자주 페이지를 플리핑해야 한다. 이 기능은 스테레오 호환 소프트웨어가 제대로 표시되도록 돕는다.
  • '''하드웨어 스테레오 동기화''': 스테레오 소프트웨어가 사용자의 그래픽 카드에 스테레오 안경용 커넥터가 있는지 확인할 수 있다.


새로운 "보호 모드 진입점"이 ''Function 0Ah''를 대체하여 추가되었다.

2. 4. VBE/AF (1996년 8월)

VBE/AF는 대부분의 하드웨어에서 사용 가능한 일반적인 가속 기능에 대한 저수준의 표준 인터페이스를 제공한다. 표준에서 정의된 일부 기능은 하드웨어 커서 접근, 비트 블록 전송(Bit Blt), 오프 스크린 스프라이트, 하드웨어 패닝, 그리기 및 기타 기능이다. 32비트 보호 모드에서 작동하도록 정의되어 있다. VBE 코어의 광범위한 채택에도 불구하고, VBE/AF를 지원하는 장치는 매우 적다. https://shawnhargreaves.com/freebe/ FreeBE/AF 프로젝트는 특정 그래픽 카드에 대한 자유 타사 VBE/AF 드라이버를 구현한다.

3. 보충 규격

보충 규격은 응용 소프트웨어와 슈퍼 VGA 하드웨어 간의 장치 독립적인 인터페이스를 제공하며, 기능 번호는 VESA 소프트웨어 표준 위원회(SSC)에서 할당한다.

3. 1. 전원 관리 확장 (PM)

DPMS는 기존의 그래픽 컨트롤러 및 모니터 케이블과 함께 사용할 수 있는 특수한 신호 시스템을 통해 그래픽 카드와 DPMS 호환 모니터 간에 통신할 수 있게 해주는 하드웨어 표준이다. 이 신호 시스템을 통해 그래픽 카드는 모니터에게 다양한 전원 관리 또는 절전 모드로 전환하도록 지시할 수 있으며, 이는 모니터가 사용되지 않을 때 스스로 꺼지는 효과가 있다.[1]

3. 2. 평판형 패널 인터페이스 확장 (FP)

평판형 패널 컨트롤러의 특수 기능에 접근할 수 있도록 한다.

3. 3. 오디오 인터페이스 확장 (AI)

WAVE, MIDI, VOLUME 장치 클래스에 대한 오디오 서비스를 표준화한다.[1]

현재(버전 1.00) VBE/AI 규격은 WAVE, MIDI, VOLUME의 세 가지 장치 클래스를 정의한다. 다루지 않는 장치 유형은 다음과 같다.[1]

  • CD-ROM 제어: 마이크로소프트 CD-ROM 확장 기능에서 다룬다.[1]
  • 효과 프로세서: 이 장치 클래스는 VBE/AI 규격의 향후 버전에서 확장될 예정이다.[1]

3. 4. OEM 확장

벤더별 확장 기능에 대한 표준 진입점을 제공한다.

3. 5. 디스플레이 데이터 채널 (DDC)

'''디스플레이 데이터 채널''' (DDC)은 컴퓨터 디스플레이와 그래픽 카드 간의 디지털 연결로, 디스플레이가 어댑터에 사양을 전달할 수 있게 해준다. 이 표준은 VESA에 의해 만들어졌다.

3. 6. 직렬 제어 인터페이스 (SCI)

운영 체제와 응용 프로그램이 I²C 직렬 제어 인터페이스를 통해 데이터를 읽고 쓸 수 있는 하드웨어 독립적인 수단을 제공한다.

4. VBE 모드 번호

VBE 모드 번호는 16비트 값이며, 선택적인 VBE 모드 번호는 14비트 폭이다. 비트 15는 VGA BIOS에서 디스플레이 메모리를 지우거나 보존하는 플래그로 사용된다.

VBE는 다음과 같이 모드 번호를 정의했다.

비트의미
0–8모드 번호. 비트 8이 1이면 VESA에서 정의한 VBE 모드이다.
9-10확장을 위해 예약됨. 0으로 설정해야 한다.
11새로 고침 빈도 제어 선택. 1로 설정하면 사용자가 지정한 CRTC 값을 새로 고침 빈도로 사용하고, 그렇지 않으면 BIOS 기본 새로 고침 빈도를 사용한다.
12–13VBE/AF를 위해 예약됨. 0으로 설정해야 한다.
14선형/플랫 프레임 버퍼 선택. 1로 설정하면 선형 프레임 버퍼를 사용하고, 그렇지 않으면 뱅크된 프레임 버퍼를 사용한다.
15디스플레이 메모리 보존 선택. 1로 설정하면 디스플레이 메모리를 보존하고, 그렇지 않으면 디스플레이 메모리를 지운다.



VBE/Core 2.0부터 VESA는 더 이상 새로운 VESA 모드 번호를 정의하지 않으며 장치가 이전 번호를 구현하도록 요구하지 않는다. 화면 모드 정보를 올바르게 감지하려면 '함수 01h - VBE 모드 정보 반환'을 사용해야 한다.

모드 81FFh는 현재 메모리 내용을 보존하고 전체 비디오 메모리에 접근할 수 있도록 설계된 특수한 비디오 모드이다.

4. 1. VESA에 의해 정의된 모드

VESA 바이오스 확장(VBE) 2.0 표준부터 VESA는 새로운 모드를 정의하지 않으며, 기존 모드도 더 이상 필수가 아니다. 정의된 모드의 사용은 더 이상 사용하지 않는 것으로 간주해야 한다. 최신 비디오 카드는 이러한 모드 번호를 사용할 수도 있고 사용하지 않을 수도 있지만(대부분은 하위 호환성을 위해 사용함), 최신 소프트웨어는 이러한 모드 번호를 사용해서는 안 된다. 소프트웨어가 사용 가능한 디스플레이 모드를 찾는 올바른 방법은 "Function 00h - Return VBE Controller Information"을 사용하여 모드 목록을 얻은 다음, 각 모드를 "Function 01h: Return VBE Mode Information"을 사용하여 확인하여 필요한 모드를 찾는 것이다.

그래픽 모드320×200640×400640×480800×6001024×7681280×1024
16색 팔레트258 (0102h), 106 (6Ah)260 (0104h)262 (0106h)
256색 팔레트256 (0100h)257 (0101h)259 (0103h)261 (0105h)263 (0107h)
15비트 (5:5:5)269 (010Dh)272 (0110h)275 (0113h)278 (0116h)281 (0119h)
16비트 (5:6:5)270 (010Eh)273 (0111h)276 (0114h)279 (0117h)282 (011Ah)
24비트 (8:8:8)271 (010Fh)274 (0112h)277 (0115h)280 (0118h)283 (011Bh)



텍스트 모드
80132
25265 (0109h)
43266 (010Ah)
50267 (010Bh)
60264 (0108h)268 (010Ch)



모드 264–268은 텍스트 모드이다. 264 (0108h)는 80열 × 60행 (80×60), 265 (0109h)는 132×25, 266 (010Ah)는 132×43, 267 (010Bh)는 132×50, 268 (010Ch)는 132×60이다.

4. 2. 기타 일반적으로 사용 가능한 그래픽 모드

다음은 VESA에서 정의한 모드(검정색 값)와 일반적으로 사용되지만 모든 그래픽 카드에서 작동하지 않을 수 있는 모드(빨간색)를 결합한 표이다.[6]

그래픽 모드320×200640×400640×480800×500800×600896×6721,024×6401,024×7681,152×7201,280×1,0241,360×7681,440×9001,600×1,200
16색 팔레트258 (0102h),
106 (6Ah)
260 (0104h)262 (0106h)
256색 팔레트256 (0100h)257 (0101h)367 (016Fh)259 (0103h)303 (012Fh)362 (016Ah)261 (0105h)357 (0165h)263 (0107h)352 (0160h)[7]284 (011Ch)
15비트(5:5:5)269 (010Dh)289 (0121h)272 (0110h)368 (0170h)275 (0113h)304 (0130h)363 (016Bh)278 (0116h)358 (0166h)281 (0119h)353 (0161h)285 (011Dh)
16비트(5:6:5)270 (010Eh)290 (0122h)273 (0111h)369 (0171h)276 (0114h)305 (0131h)364 (016Ch)279 (0117h)359 (0167h)282 (011Ah)978 (03d2h)354 (0162h)286 (011Eh)
24비트(8:8:8)271 (010Fh)291 (0123h)274 (0112h)370 (0172h)277 (0115h)306 (0132h)365 (016Dh)280 (0118h)360 (0168h)283 (011Bh)355 (0163h)287 (011Fh)
32비트(8:8:8) [8]292 (0124h)297 (0129h)371 (0173h)302 (012Eh)307 (0133h)366 (016Eh)312 (0138h)361 (0169h)317 (013Dh)980 (03d4h)356 (0164h)322 (0142h)[9]


4. 3. 모드 감지

몇 가지 도구가 시스템에서 사용 가능한 VBE 모드를 감지하도록 작성되었다. 일반적으로 장치의 자체 설명서의 일부이므로 확장 모드 테이블을 가정하는 것보다 더 신뢰할 수 있는 ''Function 01h''을 호출하여 작동한다.[10]

  • hwinfo는 SuSE 리눅스 및 일부 다른 리눅스 배포판에서 사용되는 하드웨어 감지 도구이다.[10] `hwinfo --framebuffer`를 실행하면 "Mode" 라인에 VESA 모드를 포함한 그래픽 정보를 보고한다.
  • mdt는 모니터 데이터를 읽기 위해 VESA BIOS 기능을 사용하는 리눅스 또는 도스 도구이다.[11]
  • 리눅스 리얼 모드 인터페이스(LRMI)에는 VESA 정보를 출력하는 `vbetest` 프로그램이 있다.
  • SciTech Software는 1994년으로 거슬러 올라가는 DOS용 관련 없는 `vbetest`를 가지고 있었다.
  • x86 "PC" 버전 GNU GRUB 2에는 사용 가능한 비디오 모드를 출력하는 `vbeinfo` 명령과 특정 모드를 시도하는 `vbetest` 명령이 있다. 이들은 ''Function 01h'' 대신 내장된 테이블을 사용한다. x86 EFI를 포함한 다른 플랫폼의 경우, 이는 더 일반적인 `videoinfo` 및 `videotest`로 대체된다.

4. 4. Linux 비디오 모드 번호

리눅스 커널은 사용자가 부팅 시 커널에 메모리 내 코드를 전달하여 VESA 모드를 선택할 수 있도록 한다. LILO 부트 로더는 구성 파일의 "vga" 매개변수에 따라 이 코드를 전달한다. 'vga=XXX' 형식을 사용하며, 여기서 XXX는 10진수 값이고, 'vga=0xHHH' 형식을 사용하며, 여기서 HHH는 16진수 값이다. 그러나 'vga=' 부트 로더 매개변수는 VESA 비디오 모드 번호를 직접 허용하지 않으며, 대신 리눅스 비디오 모드 번호는 VESA 번호에 512(10진수 표현의 경우) 또는 0x200(16진수 표현의 경우)을 더한 값이다. 예를 들어, 640x480 및 256 색상을 나타내는 정의된 VESA 값 257(0x101)은 769(0x301)의 리눅스 비디오 모드 값을 갖는다.[12]

VESA 표준은 제한된 모드 집합을 정의한다. 특히, 1280 × 1024 이상은 포함되지 않으며, 대신 그래픽 어댑터 제조업체에서 구현을 완전히 선택적으로 사용할 수 있다. 공급업체는 원하는 추가 값을 자유롭게 사용할 수 있으므로, 아래 표에서 빨간색으로 표시된 모드(그리고 10진수 형식으로 표현됨)는 '''모든 그래픽 어댑터에 적용되지 않을 수 있다'''!

320×200640×400640×480800×500800×600896×6721024×6401024×7681152×7201280×1,0241400×1,0501440×9001600×1,2001920×10801920×1200
16색770 (0302h)772 (0304h)774 (0306h)
256색768 (0300h)769 (0301h)879 (036Fh)771 (0303h)815 (032Fh)874 (036Ah)773 (0305h)775 (0307h)
15비트(5:5:5)781 (030Dh)801 (0321h)784 (0310h)880 (0370h)787 (0313h)816 (0330h)875 (036Bh)790 (0316h)793 (0319h)
16비트(5:6:5)782 (030Eh)802 (0322h)785 (0311h)881 (0371h)788 (0314h)817 (0331h)876 (036Ch)791 (0317h)794 (031Ah)
24비트(8:8:8)783 (030Fh)803 (0323h)786 (0312h)882 (0372h)789 (0315h)818 (0332h)877 (036Dh)792 (0318h)795 (031Bh)
32비트(8:8:8)1
(03D4h)



1: 32비트는 실제로 (8:8:8:8)이지만, 마지막 8비트 숫자는 "비어 있는" 알파 채널이다. 그렇지 않으면 24비트 색상과 동일하다. 많은 GPU는 24비트 모드 대신 32비트 색상 모드를 사용하여 32비트 메모리 정렬을 통해 비디오 메모리 액세스를 더 빠르게 한다.

VGA= [ 352 (0160h)]는 또한 다양한 노트북 디스플레이에 대해 1280×800(8비트)을 선택하는 것으로 보인다.


VGA= [ 322 (0142h)]는 1400×1050이다.

4. 5. 가상 머신에서의 VBE 모드

패러렐즈 가상 머신에 있는 VESA BIOS 에뮬레이션은 서로 다른 일련의 비표준 VESA 모드를 가지고 있다. 빌드 3214 기준으로 LRMI vbetest는 다음 모드를 표시한다.

640×400640×480720×480800×500800×600896×6721024×6401024×7681152×7201280×10241440×9001600×1200
256 색상 팔레트256 (0100h)257 (0101h)367 (016Fh)364 (016Ch)259 (0103h)297 (0129h)358 (0166h)261 (0105h)355 (0163h)263 (0107h)352 (0160h)284 (011Ch)
15비트 (5:5:5)272 (0110h)275 (0113h)278 (0116h)281 (0119h)285 (011Dh)
16비트 (5:6:5)289 (0121h)273 (0111h)368 (0170h)365 (016Dh)276 (0114h)298 (012Ah)359 (0167h)279 (0117h)356 (0164h)282 (011Ah)353 (0161h)286 (011Eh)
24비트 (8:8:8)290 (0122h)274 (0112h)369 (0171h)366 (016Eh)277 (0115h)299 (012Bh)360 (0168h)280 (0118h)357 (0165h)283 (011Bh)354 (0162h)287 (011Fh)


참조

[1] 웹사이트 What is efifb? — The Linux Kernel documentation https://www.kernel.o[...] 2020-11-24
[2] 웹사이트 What is vesafb? — The Linux Kernel documentation https://www.kernel.o[...] 2020-11-24
[3] 웹사이트 SUPER VGA BIOS EXTENSION Standard # VS891001 › Gemixtes http://www.gemixtes.[...] 2013-12-11
[4] 웹사이트 VBE Version 1.2 http://docs.ruudkoot[...] 1991-10-22
[5] 웹사이트 VBE/Core 2.0 Standard http://docs.ruudkoot[...] 2008-12-11
[6] 문서 Modes available via the traditional 10h BIOS call
[7] 문서 352 (0160h) also appears to select 1280×800 (8-bit) for various laptops' displays
[8] 문서 32-bit is really (8:8:8:8), but the final 8-bit number is an "empty" alpha channel. It is otherwise equal to 24-bit color. Many GPUs use 32-bit color mode instead of 24-bit mode merely for faster video memory access through 32-bit memory alignment.
[9] 문서 322 (0142h) is 1,400×1,050
[10] Github hwinfo source code on GitHub https://github.com/o[...]
[11] 웹사이트 mdt https://github.com/w[...]
[12] 문서 See the kernel documentation in Documentation/svga.txt and Documentation/fb/vesafb.txt.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com